/**
 * 基于axios封装请求模块
 */
import axios from "axios";
import JSONbig from 'json-bigint'

// 创建axios实例
const request = axios.create({
    baseURL: 'http://api-toutiao-web.itheima.net',
    // 定义后端返回的原始数据的处理
    transformResponse: [function(data) {

      try {
          // 后端返回的数据可能不是JSON格式的字符串
          // 转换成功，直接返回转换后的数据
          return JSONbig.parse(data)
      } catch (error) {
          // 如果转换失败，直接返回源数据
          return data 
      }
      
    }], //请求的基础路径
    timeout: 5000
})

/**
 * 请求拦截器
 */

request.interceptors.request.use(config =>{
    if(config.url !== '/v1_0/authorizations'){
        config.headers.Authorization = `Bearer ${JSON.parse(window.localStorage.getItem('adminInfo')).token}`
    }
    return config
}, error => {
    console.log(error);
})

/**
 * 响应拦截器
 */

request.interceptors.response.use(response => {
    if(response.status === 201 || response.status === 200){
        return response.data
    }else{
        return response
    }
}, error =>{
    return Promise.reject(error)
})


//导出请求实例
export default request
